// pages/xiugaimima/xiugaimima.js
Page({
  data: {
    oldPassword: '',
    newPassword: '',
    confirmPassword: '',
    errorMsg: '',
    isLoading: false
  },

  // 输入原密码
  inputOldPassword: function(e) {
    this.setData({
      oldPassword: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入新密码
  inputNewPassword: function(e) {
    this.setData({
      newPassword: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入确认密码
  inputConfirmPassword: function(e) {
    this.setData({
      confirmPassword: e.detail.value,
      errorMsg: ''
    });
  },

  // 修改密码
  changePassword: function() {
    const { oldPassword, newPassword, confirmPassword } = this.data;
    
    // 验证输入
    if (!oldPassword) {
      this.setData({ errorMsg: '请输入原密码' });
      return;
    }
    
    if (!newPassword) {
      this.setData({ errorMsg: '请输入新密码' });
      return;
    }
    
    if (!confirmPassword) {
      this.setData({ errorMsg: '请确认新密码' });
      return;
    }
    
    if (newPassword !== confirmPassword) {
      this.setData({ errorMsg: '两次输入的新密码不一致' });
      return;
    }
    
    // 验证密码强度
    if (newPassword.length < 8) {
      this.setData({ errorMsg: '新密码长度不能少于8位' });
      return;
    }
    
    if (!/[a-zA-Z]/.test(newPassword) || !/[0-9]/.test(newPassword)) {
      this.setData({ errorMsg: '新密码必须包含字母和数字' });
      return;
    }
    
    this.setData({ isLoading: true });
    
    // 获取应用实例以获取服务器地址
    const app = getApp();
    const serverUrl = app.globalData.serverUrl || 'http://localhost:3000';
    
    // 发送修改密码请求
    wx.request({
      url: `${serverUrl}/api/user/change-password`,
      method: 'POST',
      data: {
        oldPassword,
        newPassword
      },
      header: {
        'Authorization': 'Bearer ' + wx.getStorageSync('token')
      },
      success: (res) => {
        if (res.statusCode === 200 && res.data.success) {
          wx.showToast({
            title: '密码修改成功',
            icon: 'success',
            duration: 2000
          });
          
          // 清空输入
          this.setData({
            oldPassword: '',
            newPassword: '',
            confirmPassword: ''
          });
          
          // 延迟返回上一页
          setTimeout(() => {
            wx.navigateBack();
          }, 2000);
        } else {
          this.setData({
            errorMsg: res.data.message || '密码修改失败，请重试'
          });
        }
      },
      fail: (err) => {
        console.error('修改密码请求失败:', err);
        this.setData({
          errorMsg: '网络错误，请稍后重试'
        });
      },
      complete: () => {
        this.setData({ isLoading: false });
      }
    });
  }
})